

/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 6.00.0361 */
/* Compiler settings for imgfilt.idl:
    Oicf, W1, Zp8, env=Win32 (32b run)
    protocol : dce , ms_ext, c_ext
    error checks: allocation ref bounds_check enum stub_data 
    VC __declspec() decoration level: 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
//@@MIDL_FILE_HEADING(  )

#pragma warning( disable: 4049 )  /* more than 64k source lines */


/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 440
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__

#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/

#ifndef __imgfilt_h__
#define __imgfilt_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

#ifndef __IBitmapSurface_FWD_DEFINED__
#define __IBitmapSurface_FWD_DEFINED__
typedef interface IBitmapSurface IBitmapSurface;
#endif 	/* __IBitmapSurface_FWD_DEFINED__ */


#ifndef __IGdiSurface_FWD_DEFINED__
#define __IGdiSurface_FWD_DEFINED__
typedef interface IGdiSurface IGdiSurface;
#endif 	/* __IGdiSurface_FWD_DEFINED__ */


#ifndef __IRGBColorTable_FWD_DEFINED__
#define __IRGBColorTable_FWD_DEFINED__
typedef interface IRGBColorTable IRGBColorTable;
#endif 	/* __IRGBColorTable_FWD_DEFINED__ */


#ifndef __IBitmapSurfaceFactory_FWD_DEFINED__
#define __IBitmapSurfaceFactory_FWD_DEFINED__
typedef interface IBitmapSurfaceFactory IBitmapSurfaceFactory;
#endif 	/* __IBitmapSurfaceFactory_FWD_DEFINED__ */


#ifndef __IMapMIMEToCLSID_FWD_DEFINED__
#define __IMapMIMEToCLSID_FWD_DEFINED__
typedef interface IMapMIMEToCLSID IMapMIMEToCLSID;
#endif 	/* __IMapMIMEToCLSID_FWD_DEFINED__ */


#ifndef __IImageDecodeFilter_FWD_DEFINED__
#define __IImageDecodeFilter_FWD_DEFINED__
typedef interface IImageDecodeFilter IImageDecodeFilter;
#endif 	/* __IImageDecodeFilter_FWD_DEFINED__ */


#ifndef __IImageDecodeEventSink_FWD_DEFINED__
#define __IImageDecodeEventSink_FWD_DEFINED__
typedef interface IImageDecodeEventSink IImageDecodeEventSink;
#endif 	/* __IImageDecodeEventSink_FWD_DEFINED__ */


/* header files for imported files */
#include "oaidl.h"

#ifdef __cplusplus
extern "C"{
#endif 

void * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void * ); 

/* interface __MIDL_itf_imgfilt_0000 */
/* [local] */ 

#define SURFACE_LOCK_NORMAL 0x00
#define SURFACE_LOCK_EXCLUSIVE 0x01
#define SURFACE_LOCK_ALLOW_DISCARD 0x02
#define SURFACE_LOCK_READ_ONLY 0x04
#define SURFACE_LOCK_WAIT 0x08
#define DECODE_EVENT_PROGRESS 0x01
#define DECODE_EVENT_PALETTE 0x02
#define DECODE_EVENT_BEGINBITS 0x04
#define DECODE_EVENT_BITSCOMPLETE 0x08
#define DECODE_HINT_TOPDOWN 0x01
#define DECODE_HINT_BOTTOMUP 0x02
#define DECODE_HINT_FULLWIDTH 0x04
#define COLOR_NO_TRANSPARENT 0xffffffff
#define MAP_DEFAULT 0
#define MAP_CLSID 1
#define MAP_DISABLE 2
#define MAP_DEFAULT_ALWAYS 3
EXTERN_C const GUID BFID_RGB_32;
EXTERN_C const GUID BFID_RGB_555;
EXTERN_C const GUID BFID_RGB_565;
EXTERN_C const GUID BFID_RGB_24;
EXTERN_C const GUID BFID_RGB_8;
#define BFID_INDEXED_RGB_8 BFID_RGB_8
EXTERN_C const GUID BFID_RGB_4;
#define BFID_INDEXED_RGB_4 BFID_RGB_4
EXTERN_C const GUID BFID_MONOCHROME;
#define BFID_INDEXED_RGB_1 BFID_MONOCHROME
EXTERN_C const GUID BFID_RGBA_32;
EXTERN_C const GUID BFID_GRAY_8;
EXTERN_C const GUID BFID_GRAY_16;
typedef struct tagRGBQUAD RGBQUAD;







extern RPC_IF_HANDLE __MIDL_itf_imgfilt_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_imgfilt_0000_v0_0_s_ifspec;

#ifndef __IBitmapSurface_INTERFACE_DEFINED__
#define __IBitmapSurface_INTERFACE_DEFINED__

/* interface IBitmapSurface */
/* [unique][helpstring][uuid][local][object] */ 


EXTERN_C const IID IID_IBitmapSurface;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3050f2ef-98b5-11cf-bb82-00aa00bdce0b")
    IBitmapSurface : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Clone( 
            /* [out] */ IBitmapSurface **ppSurface) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetFormat( 
            /* [out] */ GUID *pBFID) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetFactory( 
            /* [out] */ IBitmapSurfaceFactory **ppFactory) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetSize( 
            LONG *pnWidth,
            LONG *pnHeight) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE LockBits( 
            /* [in] */ RECT *pBounds,
            /* [in] */ DWORD dwLockFlags,
            /* [out] */ void **ppBits,
            /* [out] */ LONG *pnPitch) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE UnlockBits( 
            /* [in] */ RECT *pBounds,
            /* [in] */ void *pBits) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IBitmapSurfaceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IBitmapSurface * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IBitmapSurface * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IBitmapSurface * This);
        
        HRESULT ( STDMETHODCALLTYPE *Clone )( 
            IBitmapSurface * This,
            /* [out] */ IBitmapSurface **ppSurface);
        
        HRESULT ( STDMETHODCALLTYPE *GetFormat )( 
            IBitmapSurface * This,
            /* [out] */ GUID *pBFID);
        
        HRESULT ( STDMETHODCALLTYPE *GetFactory )( 
            IBitmapSurface * This,
            /* [out] */ IBitmapSurfaceFactory **ppFactory);
        
        HRESULT ( STDMETHODCALLTYPE *GetSize )( 
            IBitmapSurface * This,
            LONG *pnWidth,
            LONG *pnHeight);
        
        HRESULT ( STDMETHODCALLTYPE *LockBits )( 
            IBitmapSurface * This,
            /* [in] */ RECT *pBounds,
            /* [in] */ DWORD dwLockFlags,
            /* [out] */ void **ppBits,
            /* [out] */ LONG *pnPitch);
        
        HRESULT ( STDMETHODCALLTYPE *UnlockBits )( 
            IBitmapSurface * This,
            /* [in] */ RECT *pBounds,
            /* [in] */ void *pBits);
        
        END_INTERFACE
    } IBitmapSurfaceVtbl;

    interface IBitmapSurface
    {
        CONST_VTBL struct IBitmapSurfaceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IBitmapSurface_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IBitmapSurface_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IBitmapSurface_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IBitmapSurface_Clone(This,ppSurface)	\
    (This)->lpVtbl -> Clone(This,ppSurface)

#define IBitmapSurface_GetFormat(This,pBFID)	\
    (This)->lpVtbl -> GetFormat(This,pBFID)

#define IBitmapSurface_GetFactory(This,ppFactory)	\
    (This)->lpVtbl -> GetFactory(This,ppFactory)

#define IBitmapSurface_GetSize(This,pnWidth,pnHeight)	\
    (This)->lpVtbl -> GetSize(This,pnWidth,pnHeight)

#define IBitmapSurface_LockBits(This,pBounds,dwLockFlags,ppBits,pnPitch)	\
    (This)->lpVtbl -> LockBits(This,pBounds,dwLockFlags,ppBits,pnPitch)

#define IBitmapSurface_UnlockBits(This,pBounds,pBits)	\
    (This)->lpVtbl -> UnlockBits(This,pBounds,pBits)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IBitmapSurface_Clone_Proxy( 
    IBitmapSurface * This,
    /* [out] */ IBitmapSurface **ppSurface);


void __RPC_STUB IBitmapSurface_Clone_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IBitmapSurface_GetFormat_Proxy( 
    IBitmapSurface * This,
    /* [out] */ GUID *pBFID);


void __RPC_STUB IBitmapSurface_GetFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IBitmapSurface_GetFactory_Proxy( 
    IBitmapSurface * This,
    /* [out] */ IBitmapSurfaceFactory **ppFactory);


void __RPC_STUB IBitmapSurface_GetFactory_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IBitmapSurface_GetSize_Proxy( 
    IBitmapSurface * This,
    LONG *pnWidth,
    LONG *pnHeight);


void __RPC_STUB IBitmapSurface_GetSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IBitmapSurface_LockBits_Proxy( 
    IBitmapSurface * This,
    /* [in] */ RECT *pBounds,
    /* [in] */ DWORD dwLockFlags,
    /* [out] */ void **ppBits,
    /* [out] */ LONG *pnPitch);


void __RPC_STUB IBitmapSurface_LockBits_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IBitmapSurface_UnlockBits_Proxy( 
    IBitmapSurface * This,
    /* [in] */ RECT *pBounds,
    /* [in] */ void *pBits);


void __RPC_STUB IBitmapSurface_UnlockBits_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IBitmapSurface_INTERFACE_DEFINED__ */


#ifndef __IGdiSurface_INTERFACE_DEFINED__
#define __IGdiSurface_INTERFACE_DEFINED__

/* interface IGdiSurface */
/* [unique][helpstring][uuid][local][object] */ 


EXTERN_C const IID IID_IGdiSurface;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3050f2f0-98b5-11cf-bb82-00aa00bdce0b")
    IGdiSurface : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetDC( 
            /* [out] */ HDC *phDC,
            /* [in] */ DWORD dwLockFlags) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ReleaseDC( 
            /* [in] */ HDC hDC) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IGdiSurfaceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGdiSurface * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGdiSurface * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGdiSurface * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetDC )( 
            IGdiSurface * This,
            /* [out] */ HDC *phDC,
            /* [in] */ DWORD dwLockFlags);
        
        HRESULT ( STDMETHODCALLTYPE *ReleaseDC )( 
            IGdiSurface * This,
            /* [in] */ HDC hDC);
        
        END_INTERFACE
    } IGdiSurfaceVtbl;

    interface IGdiSurface
    {
        CONST_VTBL struct IGdiSurfaceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGdiSurface_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IGdiSurface_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IGdiSurface_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IGdiSurface_GetDC(This,phDC,dwLockFlags)	\
    (This)->lpVtbl -> GetDC(This,phDC,dwLockFlags)

#define IGdiSurface_ReleaseDC(This,hDC)	\
    (This)->lpVtbl -> ReleaseDC(This,hDC)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IGdiSurface_GetDC_Proxy( 
    IGdiSurface * This,
    /* [out] */ HDC *phDC,
    /* [in] */ DWORD dwLockFlags);


void __RPC_STUB IGdiSurface_GetDC_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IGdiSurface_ReleaseDC_Proxy( 
    IGdiSurface * This,
    /* [in] */ HDC hDC);


void __RPC_STUB IGdiSurface_ReleaseDC_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IGdiSurface_INTERFACE_DEFINED__ */


#ifndef __IRGBColorTable_INTERFACE_DEFINED__
#define __IRGBColorTable_INTERFACE_DEFINED__

/* interface IRGBColorTable */
/* [unique][helpstring][uuid][local][object] */ 


EXTERN_C const IID IID_IRGBColorTable;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3050f2f5-98b5-11cf-bb82-00aa00bdce0b")
    IRGBColorTable : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetCount( 
            /* [out] */ LONG *pnCount) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetColors( 
            /* [in] */ LONG iFirst,
            /* [in] */ LONG nCount,
            /* [out] */ RGBQUAD *pColors) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetColors( 
            /* [in] */ LONG iFirst,
            /* [in] */ LONG nCount,
            /* [in] */ RGBQUAD *pColors) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetTransparentIndex( 
            /* [out] */ LONG *piIndex) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetTransparentIndex( 
            /* [in] */ LONG iIndex) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRGBColorTableVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRGBColorTable * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRGBColorTable * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRGBColorTable * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetCount )( 
            IRGBColorTable * This,
            /* [out] */ LONG *pnCount);
        
        HRESULT ( STDMETHODCALLTYPE *GetColors )( 
            IRGBColorTable * This,
            /* [in] */ LONG iFirst,
            /* [in] */ LONG nCount,
            /* [out] */ RGBQUAD *pColors);
        
        HRESULT ( STDMETHODCALLTYPE *SetColors )( 
            IRGBColorTable * This,
            /* [in] */ LONG iFirst,
            /* [in] */ LONG nCount,
            /* [in] */ RGBQUAD *pColors);
        
        HRESULT ( STDMETHODCALLTYPE *GetTransparentIndex )( 
            IRGBColorTable * This,
            /* [out] */ LONG *piIndex);
        
        HRESULT ( STDMETHODCALLTYPE *SetTransparentIndex )( 
            IRGBColorTable * This,
            /* [in] */ LONG iIndex);
        
        END_INTERFACE
    } IRGBColorTableVtbl;

    interface IRGBColorTable
    {
        CONST_VTBL struct IRGBColorTableVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRGBColorTable_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRGBColorTable_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRGBColorTable_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRGBColorTable_GetCount(This,pnCount)	\
    (This)->lpVtbl -> GetCount(This,pnCount)

#define IRGBColorTable_GetColors(This,iFirst,nCount,pColors)	\
    (This)->lpVtbl -> GetColors(This,iFirst,nCount,pColors)

#define IRGBColorTable_SetColors(This,iFirst,nCount,pColors)	\
    (This)->lpVtbl -> SetColors(This,iFirst,nCount,pColors)

#define IRGBColorTable_GetTransparentIndex(This,piIndex)	\
    (This)->lpVtbl -> GetTransparentIndex(This,piIndex)

#define IRGBColorTable_SetTransparentIndex(This,iIndex)	\
    (This)->lpVtbl -> SetTransparentIndex(This,iIndex)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRGBColorTable_GetCount_Proxy( 
    IRGBColorTable * This,
    /* [out] */ LONG *pnCount);


void __RPC_STUB IRGBColorTable_GetCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRGBColorTable_GetColors_Proxy( 
    IRGBColorTable * This,
    /* [in] */ LONG iFirst,
    /* [in] */ LONG nCount,
    /* [out] */ RGBQUAD *pColors);


void __RPC_STUB IRGBColorTable_GetColors_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRGBColorTable_SetColors_Proxy( 
    IRGBColorTable * This,
    /* [in] */ LONG iFirst,
    /* [in] */ LONG nCount,
    /* [in] */ RGBQUAD *pColors);


void __RPC_STUB IRGBColorTable_SetColors_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRGBColorTable_GetTransparentIndex_Proxy( 
    IRGBColorTable * This,
    /* [out] */ LONG *piIndex);


void __RPC_STUB IRGBColorTable_GetTransparentIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRGBColorTable_SetTransparentIndex_Proxy( 
    IRGBColorTable * This,
    /* [in] */ LONG iIndex);


void __RPC_STUB IRGBColorTable_SetTransparentIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRGBColorTable_INTERFACE_DEFINED__ */


#ifndef __IBitmapSurfaceFactory_INTERFACE_DEFINED__
#define __IBitmapSurfaceFactory_INTERFACE_DEFINED__

/* interface IBitmapSurfaceFactory */
/* [unique][helpstring][uuid][local][object] */ 


EXTERN_C const IID IID_IBitmapSurfaceFactory;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3050f2f2-98b5-11cf-bb82-00aa00bdce0b")
    IBitmapSurfaceFactory : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE CreateBitmapSurface( 
            /* [in] */ LONG nWidth,
            /* [in] */ LONG nHeight,
            /* [in] */ GUID *pBFID,
            /* [in] */ DWORD dwHintFlags,
            /* [out] */ IBitmapSurface **ppSurface) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetSupportedFormatsCount( 
            /* [out] */ LONG *pnFormats) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetSupportedFormats( 
            /* [in] */ LONG nFormats,
            /* [out] */ GUID *pBFIDs) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IBitmapSurfaceFactoryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IBitmapSurfaceFactory * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IBitmapSurfaceFactory * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IBitmapSurfaceFactory * This);
        
        HRESULT ( STDMETHODCALLTYPE *CreateBitmapSurface )( 
            IBitmapSurfaceFactory * This,
            /* [in] */ LONG nWidth,
            /* [in] */ LONG nHeight,
            /* [in] */ GUID *pBFID,
            /* [in] */ DWORD dwHintFlags,
            /* [out] */ IBitmapSurface **ppSurface);
        
        HRESULT ( STDMETHODCALLTYPE *GetSupportedFormatsCount )( 
            IBitmapSurfaceFactory * This,
            /* [out] */ LONG *pnFormats);
        
        HRESULT ( STDMETHODCALLTYPE *GetSupportedFormats )( 
            IBitmapSurfaceFactory * This,
            /* [in] */ LONG nFormats,
            /* [out] */ GUID *pBFIDs);
        
        END_INTERFACE
    } IBitmapSurfaceFactoryVtbl;

    interface IBitmapSurfaceFactory
    {
        CONST_VTBL struct IBitmapSurfaceFactoryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IBitmapSurfaceFactory_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IBitmapSurfaceFactory_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IBitmapSurfaceFactory_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IBitmapSurfaceFactory_CreateBitmapSurface(This,nWidth,nHeight,pBFID,dwHintFlags,ppSurface)	\
    (This)->lpVtbl -> CreateBitmapSurface(This,nWidth,nHeight,pBFID,dwHintFlags,ppSurface)

#define IBitmapSurfaceFactory_GetSupportedFormatsCount(This,pnFormats)	\
    (This)->lpVtbl -> GetSupportedFormatsCount(This,pnFormats)

#define IBitmapSurfaceFactory_GetSupportedFormats(This,nFormats,pBFIDs)	\
    (This)->lpVtbl -> GetSupportedFormats(This,nFormats,pBFIDs)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IBitmapSurfaceFactory_CreateBitmapSurface_Proxy( 
    IBitmapSurfaceFactory * This,
    /* [in] */ LONG nWidth,
    /* [in] */ LONG nHeight,
    /* [in] */ GUID *pBFID,
    /* [in] */ DWORD dwHintFlags,
    /* [out] */ IBitmapSurface **ppSurface);


void __RPC_STUB IBitmapSurfaceFactory_CreateBitmapSurface_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IBitmapSurfaceFactory_GetSupportedFormatsCount_Proxy( 
    IBitmapSurfaceFactory * This,
    /* [out] */ LONG *pnFormats);


void __RPC_STUB IBitmapSurfaceFactory_GetSupportedFormatsCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IBitmapSurfaceFactory_GetSupportedFormats_Proxy( 
    IBitmapSurfaceFactory * This,
    /* [in] */ LONG nFormats,
    /* [out] */ GUID *pBFIDs);


void __RPC_STUB IBitmapSurfaceFactory_GetSupportedFormats_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IBitmapSurfaceFactory_INTERFACE_DEFINED__ */


#ifndef __IMapMIMEToCLSID_INTERFACE_DEFINED__
#define __IMapMIMEToCLSID_INTERFACE_DEFINED__

/* interface IMapMIMEToCLSID */
/* [unique][helpstring][uuid][local][object] */ 


EXTERN_C const IID IID_IMapMIMEToCLSID;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D9E89500-30FA-11d0-B724-00AA006C1A01")
    IMapMIMEToCLSID : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE EnableDefaultMappings( 
            BOOL bEnable) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE MapMIMEToCLSID( 
            LPCOLESTR pszMIMEType,
            GUID *pCLSID) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetMapping( 
            LPCOLESTR pszMIMEType,
            DWORD dwMapMode,
            REFGUID clsid) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IMapMIMEToCLSIDVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IMapMIMEToCLSID * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IMapMIMEToCLSID * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IMapMIMEToCLSID * This);
        
        HRESULT ( STDMETHODCALLTYPE *EnableDefaultMappings )( 
            IMapMIMEToCLSID * This,
            BOOL bEnable);
        
        HRESULT ( STDMETHODCALLTYPE *MapMIMEToCLSID )( 
            IMapMIMEToCLSID * This,
            LPCOLESTR pszMIMEType,
            GUID *pCLSID);
        
        HRESULT ( STDMETHODCALLTYPE *SetMapping )( 
            IMapMIMEToCLSID * This,
            LPCOLESTR pszMIMEType,
            DWORD dwMapMode,
            REFGUID clsid);
        
        END_INTERFACE
    } IMapMIMEToCLSIDVtbl;

    interface IMapMIMEToCLSID
    {
        CONST_VTBL struct IMapMIMEToCLSIDVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IMapMIMEToCLSID_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IMapMIMEToCLSID_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IMapMIMEToCLSID_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IMapMIMEToCLSID_EnableDefaultMappings(This,bEnable)	\
    (This)->lpVtbl -> EnableDefaultMappings(This,bEnable)

#define IMapMIMEToCLSID_MapMIMEToCLSID(This,pszMIMEType,pCLSID)	\
    (This)->lpVtbl -> MapMIMEToCLSID(This,pszMIMEType,pCLSID)

#define IMapMIMEToCLSID_SetMapping(This,pszMIMEType,dwMapMode,clsid)	\
    (This)->lpVtbl -> SetMapping(This,pszMIMEType,dwMapMode,clsid)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IMapMIMEToCLSID_EnableDefaultMappings_Proxy( 
    IMapMIMEToCLSID * This,
    BOOL bEnable);


void __RPC_STUB IMapMIMEToCLSID_EnableDefaultMappings_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMapMIMEToCLSID_MapMIMEToCLSID_Proxy( 
    IMapMIMEToCLSID * This,
    LPCOLESTR pszMIMEType,
    GUID *pCLSID);


void __RPC_STUB IMapMIMEToCLSID_MapMIMEToCLSID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMapMIMEToCLSID_SetMapping_Proxy( 
    IMapMIMEToCLSID * This,
    LPCOLESTR pszMIMEType,
    DWORD dwMapMode,
    REFGUID clsid);


void __RPC_STUB IMapMIMEToCLSID_SetMapping_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IMapMIMEToCLSID_INTERFACE_DEFINED__ */


#ifndef __IImageDecodeFilter_INTERFACE_DEFINED__
#define __IImageDecodeFilter_INTERFACE_DEFINED__

/* interface IImageDecodeFilter */
/* [unique][helpstring][uuid][local][object] */ 


EXTERN_C const IID IID_IImageDecodeFilter;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A3CCEDF3-2DE2-11D0-86F4-00A0C913F750")
    IImageDecodeFilter : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Initialize( 
            IImageDecodeEventSink *pEventSink) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Process( 
            IStream *pStream) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Terminate( 
            HRESULT hrStatus) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IImageDecodeFilterVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IImageDecodeFilter * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IImageDecodeFilter * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IImageDecodeFilter * This);
        
        HRESULT ( STDMETHODCALLTYPE *Initialize )( 
            IImageDecodeFilter * This,
            IImageDecodeEventSink *pEventSink);
        
        HRESULT ( STDMETHODCALLTYPE *Process )( 
            IImageDecodeFilter * This,
            IStream *pStream);
        
        HRESULT ( STDMETHODCALLTYPE *Terminate )( 
            IImageDecodeFilter * This,
            HRESULT hrStatus);
        
        END_INTERFACE
    } IImageDecodeFilterVtbl;

    interface IImageDecodeFilter
    {
        CONST_VTBL struct IImageDecodeFilterVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IImageDecodeFilter_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IImageDecodeFilter_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IImageDecodeFilter_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IImageDecodeFilter_Initialize(This,pEventSink)	\
    (This)->lpVtbl -> Initialize(This,pEventSink)

#define IImageDecodeFilter_Process(This,pStream)	\
    (This)->lpVtbl -> Process(This,pStream)

#define IImageDecodeFilter_Terminate(This,hrStatus)	\
    (This)->lpVtbl -> Terminate(This,hrStatus)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IImageDecodeFilter_Initialize_Proxy( 
    IImageDecodeFilter * This,
    IImageDecodeEventSink *pEventSink);


void __RPC_STUB IImageDecodeFilter_Initialize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IImageDecodeFilter_Process_Proxy( 
    IImageDecodeFilter * This,
    IStream *pStream);


void __RPC_STUB IImageDecodeFilter_Process_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IImageDecodeFilter_Terminate_Proxy( 
    IImageDecodeFilter * This,
    HRESULT hrStatus);


void __RPC_STUB IImageDecodeFilter_Terminate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IImageDecodeFilter_INTERFACE_DEFINED__ */


#ifndef __IImageDecodeEventSink_INTERFACE_DEFINED__
#define __IImageDecodeEventSink_INTERFACE_DEFINED__

/* interface IImageDecodeEventSink */
/* [unique][helpstring][uuid][local][object] */ 


EXTERN_C const IID IID_IImageDecodeEventSink;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("BAA342A0-2DED-11d0-86F4-00A0C913F750")
    IImageDecodeEventSink : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetSurface( 
            /* [in] */ LONG nWidth,
            /* [in] */ LONG nHeight,
            /* [in] */ REFGUID bfid,
            /* [in] */ ULONG nPasses,
            /* [in] */ DWORD dwHints,
            /* [out] */ IBitmapSurface **ppSurface) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnBeginDecode( 
            /* [out] */ DWORD *pdwEvents,
            /* [out] */ ULONG *pnFormats,
            /* [size_is][size_is][out] */ GUID **ppFormats) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnBitsComplete( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnDecodeComplete( 
            /* [in] */ HRESULT hrStatus) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnPalette( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnProgress( 
            /* [in] */ RECT *pBounds,
            /* [in] */ BOOL bComplete) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IImageDecodeEventSinkVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IImageDecodeEventSink * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IImageDecodeEventSink * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IImageDecodeEventSink * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetSurface )( 
            IImageDecodeEventSink * This,
            /* [in] */ LONG nWidth,
            /* [in] */ LONG nHeight,
            /* [in] */ REFGUID bfid,
            /* [in] */ ULONG nPasses,
            /* [in] */ DWORD dwHints,
            /* [out] */ IBitmapSurface **ppSurface);
        
        HRESULT ( STDMETHODCALLTYPE *OnBeginDecode )( 
            IImageDecodeEventSink * This,
            /* [out] */ DWORD *pdwEvents,
            /* [out] */ ULONG *pnFormats,
            /* [size_is][size_is][out] */ GUID **ppFormats);
        
        HRESULT ( STDMETHODCALLTYPE *OnBitsComplete )( 
            IImageDecodeEventSink * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnDecodeComplete )( 
            IImageDecodeEventSink * This,
            /* [in] */ HRESULT hrStatus);
        
        HRESULT ( STDMETHODCALLTYPE *OnPalette )( 
            IImageDecodeEventSink * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnProgress )( 
            IImageDecodeEventSink * This,
            /* [in] */ RECT *pBounds,
            /* [in] */ BOOL bComplete);
        
        END_INTERFACE
    } IImageDecodeEventSinkVtbl;

    interface IImageDecodeEventSink
    {
        CONST_VTBL struct IImageDecodeEventSinkVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IImageDecodeEventSink_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IImageDecodeEventSink_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IImageDecodeEventSink_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IImageDecodeEventSink_GetSurface(This,nWidth,nHeight,bfid,nPasses,dwHints,ppSurface)	\
    (This)->lpVtbl -> GetSurface(This,nWidth,nHeight,bfid,nPasses,dwHints,ppSurface)

#define IImageDecodeEventSink_OnBeginDecode(This,pdwEvents,pnFormats,ppFormats)	\
    (This)->lpVtbl -> OnBeginDecode(This,pdwEvents,pnFormats,ppFormats)

#define IImageDecodeEventSink_OnBitsComplete(This)	\
    (This)->lpVtbl -> OnBitsComplete(This)

#define IImageDecodeEventSink_OnDecodeComplete(This,hrStatus)	\
    (This)->lpVtbl -> OnDecodeComplete(This,hrStatus)

#define IImageDecodeEventSink_OnPalette(This)	\
    (This)->lpVtbl -> OnPalette(This)

#define IImageDecodeEventSink_OnProgress(This,pBounds,bComplete)	\
    (This)->lpVtbl -> OnProgress(This,pBounds,bComplete)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IImageDecodeEventSink_GetSurface_Proxy( 
    IImageDecodeEventSink * This,
    /* [in] */ LONG nWidth,
    /* [in] */ LONG nHeight,
    /* [in] */ REFGUID bfid,
    /* [in] */ ULONG nPasses,
    /* [in] */ DWORD dwHints,
    /* [out] */ IBitmapSurface **ppSurface);


void __RPC_STUB IImageDecodeEventSink_GetSurface_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IImageDecodeEventSink_OnBeginDecode_Proxy( 
    IImageDecodeEventSink * This,
    /* [out] */ DWORD *pdwEvents,
    /* [out] */ ULONG *pnFormats,
    /* [size_is][size_is][out] */ GUID **ppFormats);


void __RPC_STUB IImageDecodeEventSink_OnBeginDecode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IImageDecodeEventSink_OnBitsComplete_Proxy( 
    IImageDecodeEventSink * This);


void __RPC_STUB IImageDecodeEventSink_OnBitsComplete_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IImageDecodeEventSink_OnDecodeComplete_Proxy( 
    IImageDecodeEventSink * This,
    /* [in] */ HRESULT hrStatus);


void __RPC_STUB IImageDecodeEventSink_OnDecodeComplete_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IImageDecodeEventSink_OnPalette_Proxy( 
    IImageDecodeEventSink * This);


void __RPC_STUB IImageDecodeEventSink_OnPalette_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IImageDecodeEventSink_OnProgress_Proxy( 
    IImageDecodeEventSink * This,
    /* [in] */ RECT *pBounds,
    /* [in] */ BOOL bComplete);


void __RPC_STUB IImageDecodeEventSink_OnProgress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IImageDecodeEventSink_INTERFACE_DEFINED__ */


/* Additional Prototypes for ALL interfaces */

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


